package arraylist01;

import java.util.ArrayList;

/**
 * ArrayList<E>类中的方法:
 *   boolean add(E e)
 *           将指定的元素添加到此列表的尾部。
 *  void add(int index, E element)
 *           将指定的元素插入此列表中的指定位置。
 *
 *  E get(int index)
 *           返回此列表中指定位置上的元素。
 *
 *
 *  E set(int index, E element)
 *           用指定的元素替代此列表中指定位置上的元素。
 *
 *  E remove(int index)
 *           移除此列表中指定位置上的元素。
 */
public class ArrayListDemo01 {
    public static void main(String[] args) {
        //method01();
        //method02();
        //method03();
        //method04();
        ArrayList<String> al = new ArrayList<String>();
        al.add("张无忌");
        al.add("赵敏");
        al.add("周芷若");

        String str = al.remove(2);//删除指定索引位置的元素,返回要删除的元素
        System.out.println(str);
        System.out.println(al);

    }

    private static void method04() {
        ArrayList<String> al = new ArrayList<String>();
        al.add("张无忌");
        al.add("赵敏");
        al.add("周芷若");

        String str = al.set(1, "灭绝师太"); //set方法返回的是该索引上原有的元素
        //执行完set方法会将指定元素替换指定索引位置元素
        System.out.println(str);
        System.out.println(al);
    }

    private static void method03() {
        ArrayList<String> al = new ArrayList<String>();
        al.add("张无忌");
        al.add("赵敏");
        al.add("周芷若");
        String str= al.get(1);
        System.out.println(str);//"赵敏"
        System.out.println(al.get(2));//"周芷若"
    }

    private static void method02() {
        ArrayList<String> al = new ArrayList<String>();
        al.add("abc");
        al.add("def");
        System.out.println(al);//[abc, def]

        al.add(1,"mk"); //将mk元素添加到集合中的1索引位置(ArrayList集合索引从0开始)
        //mk之后的元素后移一个位置
        System.out.println(al);//[abc, mk, def]

        al.add(0,"ll");//将ll元素添加到集合中的0索引位置
        System.out.println(al);//[ll, abc, mk, def]//ll之后的元素都后移一个位置
    }

    private static void method01() {
        ArrayList<String> al = new ArrayList<String>();
        al.add("abc");
        al.add("def");
        al.add("ghk");
        System.out.println(al);//[abc, def, ghk]
    }
}
